#ifndef QUEUE_H_
#define QUEUE_H_

#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
#include "common.h"

#define QUEUE_SIZE 100

typedef struct {
    Request data[QUEUE_SIZE];
    int front;
    int rear;
    int size;
} ArrayQueue;

void initQueue(ArrayQueue *q);

bool isFull(ArrayQueue *q);

bool isEmpty(ArrayQueue *q);

bool enqueue(ArrayQueue *q, Request value);

bool dequeue(ArrayQueue *q, Request *value);

Request peek(ArrayQueue *q);

#endif